package logica.pruebas;
import java.awt.Color;

import logica.clases.Coordenada;
import logica.clases.Jugador;
import logica.clases.Pais;
import logica.clases.Partida;
import logica.colecciones.Jugadores;
import logica.colecciones.Mapa;
import logica.colecciones.Partidas;
import logica.datatypes.Jugador.DataJugador_R5;
import logica.datatypes.Partida.DataPartida_R16;
import logica.datatypes.Partida.DataPartida_R4;
import logica.excepciones.JugadoresException;

public class pruebaPartidas {
	public static void main(String[] args) throws JugadoresException {
		
		Coordenada coordenada1 = new Coordenada(3,5), coordenada2 = new Coordenada(1,2), coordenada3 = new Coordenada(2,2),
		coordenada4 = new Coordenada(3,2), coordenada5 = new Coordenada(5,3), coordenada6 = new Coordenada(3,6);
		Mapa mapa = new Mapa();
		
		Partidas partidas = Partidas.getInstancia();
		Jugadores jugadores = new Jugadores(2);
		Jugador jug = new Jugador(1, "DD", Color.blue);
		Jugador jugA = new Jugador(2, "AA", Color.gray);
		jugadores.insertar(jug);
		jugadores.insertar(jugA);
		Partida partida = new Partida("Partida1", jugadores);
		System.out.println("Partida creada");
		System.out.println(partida.getCodigo());
		partidas.insert(partida);
		System.out.println("Partida ingresada");
		
		Jugadores jugadores1 = new Jugadores(3);
		Jugador jug1 = new Jugador(1, "Jose", Color.WHITE);
		Jugador jug2 = new Jugador(2, "Pedro", Color.BLACK);
		Jugador jug3 = new Jugador(2, "Maria", Color.BLUE);
		jugadores1.insertar(jug1);
		jugadores1.insertar(jug2);
		jugadores1.insertar(jug3);
		
		Partida partida1 = new Partida("Partida1", jugadores1);
		
		Jugadores jugadores2 = new Jugadores(5);
		Jugador jug4 = new Jugador(1, "Jose", Color.WHITE);
		Jugador jug5 = new Jugador(2, "Pedro", Color.BLACK);
		Jugador jug6 = new Jugador(3, "Maria", Color.BLUE);
		Jugador jug7 = new Jugador(4, "Juan", Color.CYAN);
		Jugador jug8 = new Jugador(5, "Rosa", Color.GRAY);
		jugadores2.insertar(jug4);
		jugadores2.insertar(jug5);
		jugadores2.insertar(jug6);
		jugadores2.insertar(jug7);
		jugadores2.insertar(jug8);
		Partida partida2 = new Partida("Partida2", jugadores2);
		
		Jugadores jugadores3 = new Jugadores(3);
		Jugador jug9 = new Jugador(2, "Pedro", Color.BLACK);
		Jugador jug10 = new Jugador(2, "Maria", Color.BLUE);
		Jugador jug11 = new Jugador(2, "Rosa", Color.GRAY);	
		jugadores3.insertar(jug9);
		jugadores3.insertar(jug10);
		jugadores3.insertar(jug11);
		Partida partida3 = new Partida("Partida3", jugadores3);
		
		partidas.insert(partida1);
		partidas.insert(partida2);
		partidas.insert(partida3);
		
		Pais pais1 = new Pais (1, "Uruguay", coordenada1);
		Pais pais2 = new Pais (2, "Brasil", coordenada2);
		Pais pais3 = new Pais (3, "Mexico", coordenada3);
		Pais pais4 = new Pais (4, "Chile", coordenada4);
		Pais pais5 = new Pais (5, "Argentina", coordenada5);
		Pais pais6 = new Pais (4, "Chile", coordenada6);
		
		mapa.insert(pais1);
		mapa.insert(pais2);
		mapa.insert(pais3);
		mapa.insert(pais4);
		mapa.insert(pais5);
		mapa.insert(pais6);
		
		System.out.println("Partida en curso?: " + partidas.hayPartidaEnCurso());
		partidas.iniciarPartida("Partida1", mapa);
		System.out.println("Se inicia Partida1");
		System.out.println("Partida1 es miembro?: " + partidas.member("Partida1"));
		System.out.println("Partida en curso?: " + partidas.hayPartidaEnCurso());
		partidas.detenerPartida("Partida1");
		System.out.println("Se detiene partida en curso, Partida1: ");
		System.out.println("Partida en curso?: " + partidas.hayPartidaEnCurso());
		//partidas.reanudarPartida("Partida1");
		partidas.reanudarPartida("Partida2");
		System.out.println("Se reanuda partida Partida1");
		System.out.println("Partida en curso?: " + partidas.hayPartidaEnCurso());
		
		DataPartida_R4[] listaCodPartidas = partidas.listarCodPartidas();
		
		System.out.println("Codigos de Partidas: ");
		for (int i =0; i<listaCodPartidas.length; i++){
			System.out.println(listaCodPartidas[i].getCodigo());
		}
		System.out.println("Jugadores de Partida1: ");
		DataJugador_R5[] listaNomJugadores = partidas.listarNomJugadores("Partida1");
		for (int i =0; i< listaNomJugadores.length; i++){
			System.out.println(listaNomJugadores[i].getNombre());
		}
		
		System.out.println("partida1 en curso?: " + partidas.partidaEnCurso("Partida1"));	
		DataPartida_R16[] data = partidas.listarPartidasRegistradas();
		System.out.println("Partidas Registradas");
		for (int i=0; i< data .length;i++){
			System.out.println(data [i].getCodigo());
		} 	
	}	
}
